草庐IT

iOS UIScrollView 性能

全部标签

糟糕的树添加性能

我目前正在写一个树容器(仅是为了理解和培训),到现在为止,我有了一种非常基本的方法来添加元素。这是我的树代码。没有破坏者,没有清理,现在没有元素访问。templateclassset{public:structNode{Node(constT&val):left(0),right(0),value(val){}Node*left;Node*right;Tvalue;};set(){}templatevoidadd(constT&value){if(m_Root==nullptr){m_Root=newNode(value);}Node*next=nullptr;Node*current=m_R

C++ 性能、优化编译器、.cpp 中的空函数

我有一个非常基本的类,将其命名为Basic,用于一个更大项目中的几乎所有其他文件。在某些情况下,需要有调试输出,但在Release模式下,这不应该启用并且是一个NOOP。目前在标题中有一个定义,它根据设置打开或关闭宏。因此,当关闭时,这绝对是一个NOOP。我想知道,如果我有以下代码,编译器(MSVS/gcc)是否能够优化函数调用,那么它又是一个NOOP。(通过这样做,开关可以在.cpp中,并且开关会更快,编译/链接时间明智)。--Header--voidprintDebug(constBasic*p);classBasic{Basic(){simpleSetupCode;//thiss

c++ - 使用 char[] 作为参数、返回等可以解决任何性能问题吗?

首先是为了让C++代码更具可读性;我是编程编译器,我给了它:varswap=(intx,y)=>{//Assignmethodthatreturnstwoints,andgetstwointsasparametertovariablenamedswap.varNewX=yvarNewY=x}varincrement=(intx)=>{varResult=x+1}注意:函数返回首字母大写的任何变量。swap可以像...=swap(x,y).NewX一样使用,但是increment可以像一样使用。..=增量(x)。经过一些优化后,它生成了:(使swap和increment成为实际函数而不是

c++ - 使用 lambda 而不是函数对象,性能不佳

我的问题很简单,我想像使用仿函数作为“比较器”一样使用lambda,让我稍微解释一下。我有两个大结构,它们都有自己的operator实现,我还有一个useless使用两个结构的类(这只是这个问题上下文中的类的名称),一切看起来像这样:structbe_less{//Alotofstuffintval;be_less(intp_v):val(p_v){}booloperatorp_other.val;}};classuseless{priority_queueless_q;priority_queuemore_q;public:useless(constvector&p_data){fo

c++ - 为什么在这种特殊情况下数据类型会影响性能?

我编写了以下代码来对缓存未命中对性能的影响进行基准测试:#include#include#include#include//Avoidingusingpowerof2becauseofpossibleperformancedegradationduetocacheassociativity?staticconstsize_tROW_SIZE=600;staticconstsize_tCOL_SIZE=600;staticconstsize_tTEST_COUNT=50;#defineSAME_TYPES1#defineINIT_TO_ONE0#ifSAME_TYPES#defineAR

c++ - 即使在 num_threads(1) 时,openmp 的性能提升也难以理解

下面几行代码intnrows=4096;intncols=4096;size_tnumel=nrows*ncols;unsignedchar*buff=(unsignedchar*)malloc(numel);unsignedchar*pbuff=buff;#pragmaompparallelforschedule(static),firstprivate(pbuff,nrows,ncols),num_threads(1)for(inti=0;i编译时需要11130usecs在我的i5-3230M上运行g++-omainmain.cpp-std=c++0x-O3也就是说,当openmp

c++ - 访问硬编码数组和运行时初始化数组之间是否存在任何性能差异?

例如,我想使用数组SQRT[i]创建一个平方根表来优化游戏,但我不知道在访问SQRT[i]的值时,以下初始化之间是否存在性能差异:硬编码数组intSQRT[]={0,1,1,1,2,2,2,2,2,3,3,.......255,255,255}在运行时产生值(value)intSQRT[65536];intmain(){for(inti=0;i访问它们的一些例子:if(SQRT[a*a+b*b]>something)...我不清楚程序是否以不同的方式存储或访问硬编码数组,也不知道编译器是否会优化硬编码数组以加快访问时间,是否有性能它们在访问数组时的区别? 最

c++ - 对位集进行位运算的性能

在C++中,如果我对两个位集执行逻辑或(或与)操作,例如:bitsetb1,b2;//somestuffb1|=b2;这是在O(n)还是O(1)时间内发生的?为什么?此外,这是否可以在O(1)时间内使用bool数组来完成?谢谢。 最佳答案 它必须在O(N)时间内发生,因为给定处理器平台在任何给定时间内可以处理的位数是有限的。换句话说,bit-set越大,每个操作所花费的时间就越长,并且增加将与bitset中的位数成线性关系。使用bool类型的数组时,您也会遇到同样的问题。虽然每个单独的操作本身将花费O(1)时间,但N个对象的总时间将

c++ - HBase 上的 Thrift 是否有任何性能基准?

我有一个系统可能会向hbase写入大量数据。系统是c++写的,发现hbase有其他语言的thrift接口(interface)。我的问题是,是否有针对HBase上的Thrift的任何性能基准?与javanativeapi相比最大的缺点是什么? 最佳答案 我推荐最近两篇有关此主题的博文:HBase+Thriftperformancepart1HBase+Thriftperformancepart2这两篇文章给出了将Thrift与HBase结合使用的详细性能测量结果。 关于c++-HBase

c++ - SDL_HWSURFACE 和 SDL_SWSURFACE 在速度和性能方面有什么区别?

SDL_HWSURFACE与SDL_SWSURFACE甚至SDL_FULLSCREEN?这里的优点和缺点是什么?我认为硬件要快得多。http://www.libsdl.org/docs/html/sdlsetvideomode.html 最佳答案 SDLWiki说得最好:SDL_SWSURFACESDL将在系统内存中创建界面。这提高了像素级访问的性能,但是您可能无法利用某些类型的硬件blitting。SDL_HWSURFACESDL将尝试在显存中创建表面。这将允许SDL利用Video->Videoblits(通常是加速的)。我的想法